package com.seeyon.apps.u8cloud.button;

import com.seeyon.cap4.form.bean.FormBean;
import com.seeyon.cap4.form.bean.FormSaveAsBean;
import com.seeyon.cap4.form.bean.button.CommonBtn;
import com.seeyon.cap4.form.modules.importandexport.BusinessDataBean;
import com.seeyon.cap4.form.util.Enums;
import com.seeyon.ctp.util.json.JSONUtil;

import java.util.HashMap;
import java.util.Map;

/**
 * @ClassName CreateVoucherButton
 * @Description 自定义按钮
 * @Author CheungHowrAn
 * @Date 2022/4/19 12:44
 * @Version 1.0
 */
public class CreateVoucherButton extends CommonBtn {
    @Override
    public void init() {
        this.setPluginId("createVoucherButton");//设置插件或者组件id，和pluginCfg.xml中的id一致
        this.setIcon("cap-icon-custom-button");
    }

    @Override
    public boolean canUse(Enums.FormType formType) {
        return true;
    }

    @Override
    public String getKey() {
        return "createVoucherButton";//给按钮设置一个key，可以随便取
    }

    @Override
    public String getNameSpace() {
        return "customBtn_" + this.getKey();
    }

    @Override
    public String getText() {
        return "生成凭证";//设置按钮名称
    }

    /*
    /**
     * 获取PC端自定义控件运行态资源注入信息
     * jsUri:定义PC端表单运行态加载第三方JavaScript的路径
     * cssUri：定义PC端表单运行态加载第三方CSS的路径
     * initMethod:定义PC端表单运行态第三方js入口方法名称
     *
     * @return
     */
    @Override
    public String getPCInjectionInfo() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("path", "apps_res/cap/customCtrlResources/createVoucherButton/");
        map.put("jsUri", "js/createVoucherButton.js");
        map.put("initMethod", "init");
        map.put("nameSpace", this.getNameSpace());
        return JSONUtil.toJSONString(map);
    }

    @Override
    public String getMBInjectionInfo() {
        return null;
    }

    /**
     * 导出的扩展接口，应用绑定自定义按钮用，有需要的重写该方法
     *
     * @param formBean         当前表单
     * @param businessDataBean 导出中间对象，如果有附件，可以放到对象中的unifiedExportAttachment中
     * @param resultMap        按鈕json
     */
    @Override
    public void getJson4Export(FormBean formBean, String customParam, BusinessDataBean businessDataBean,
                               Map<String, Object> resultMap) {

    }

    /**
     * 在业务导入完之后，应用绑定自定义按钮的处理接口
     *
     * @param formBean
     * @param customParam
     * @param businessDataBean
     * @param btnInfoMap
     */
    @Override
    public void importInfoAfterBizImport(FormBean formBean, String customParam, BusinessDataBean businessDataBean,
                                         Map<String, Object> btnInfoMap) {

    }

    /**
     * 表单另存为应用绑定自定义按钮另存为接口，各个应用绑定自定义按钮需要处理自己的逻辑
     *
     * @param formSaveAsBean
     * @param formBean
     * @param btnInfoMap
     */
    public void otherSave(FormSaveAsBean formSaveAsBean, FormBean formBean, Map<String, Object> btnInfoMap) {

    }
}